<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // function addStrings(num1, num2) {
      //   let result = '' // 用于保存加法结果的字符串
      //   let carry = 0 // 用于保存进位值的变量

      //   // 从字符串的末尾开始遍历相加
      //   for (let i = num1.length - 1, j = num2.length - 1;i >= 0 || j >= 0 || carry > 0;i--, j--) {

      //     const digit1 = i < 0 ? 0 : parseInt(num1.charAt(i)) // 取出 num1 中对应位置上的数字，如果位置越界了，就用 0 代替
      //     const digit2 = j < 0 ? 0 : parseInt(num2.charAt(j)) // 取出 num2 中对应位置上的数字，如果位置越界了，就用 0 代替
      //     const sum = digit1 + digit2 + carry // 计算当前位的和

      //     result = (sum % 10) + result // 将当前位的结果拼接到 result 的前面
      //     carry = Math.floor(sum / 10) // 更新进位值
      //   }

      //   return result
      // }
      function addStrings(num1, num2) {
        let i = num1.length - 1
        let j = num2.length - 1
        let carry = 0
        const res = []

        while (i >= 0 || j >= 0 || carry > 0) {
          const a = i >= 0 ? +num1[i] : 0
          const b = j >= 0 ? +num2[j] : 0
          const sum = a + b + carry
          res.unshift(sum % 10)
          carry = Math.floor(sum / 10)
          i--
          j--
          return res.join('')
        }
      }
      console.log(addStrings('456', '777'))
      console.log(addStrings('0', '0'))
    </script>
  </body>
</html>
